home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 34.zip
/
BS1 part 34
/
GFA basic training.adf
/
Requester
/
RADIO_BUTTONS.LST
< prev
next >
Wrap
File List
|
1989-06-01
|
4KB
|
142 lines
' radio_buttons
'
@radio_button
PROCEDURE radio_button
LOCAL hintergrund$,revers$,x$,b_breite%,b_hÖhe%,n_gruppen%,x%
LOCAL bremse!,gefunden!,ende!,tx&,ty&,y|,i|,j|,k|,j1|
LOCAL gruppe|,eintrag|,z|,t|,b&,form$,wÄhlbar!,gewÄhlt!,revers!
READ b_breite%
READ b_hÖhe%
READ n_gruppen%
DIM form$(n_gruppen%,10),b&(n_gruppen%,10,4),wÄhlbar!(n_gruppen%,10)
DIM gewÄhlt!(n_gruppen%,10),revers!(n_gruppen%)
ARRAYFILL gewÄhlt!(),FALSE
ARRAYFILL revers!(),FALSE
bremse!=FALSE
x%=320-b_breite%/2
y|=100-b_hÖhe%/2
'
COLOR 0
GET x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4,hintergrund$
PBOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
COLOR 1
'
BOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
BOX x%+3,y|+2,x%+b_breite%+3,y|+b_hÖhe%+2
ADD x%,3
ADD y|,2
'
FOR i|=1 TO n_gruppen%
j|=1
DO
READ form$(i|,j|)
EXIT IF form$(i|,j|)="-------------"
READ wÄhlbar!(i|,j|)
FOR k|=1 TO 4
READ b&(i|,j|,k|)
NEXT k|
ADD b&(i|,j|,1),x%
ADD b&(i|,j|,2),y|
ADD b&(i|,j|,3),x%
ADD b&(i|,j|,4),y|
@r_setzen
INC j|
LOOP
NEXT i|
'
REPEAT
'
IF MOUSEX>x% AND MOUSEX<x%+b_breite% AND MOUSEY>y| AND MOUSEY<y|+b_hÖhe% AND MOUSEK=1 AND NOT bremse!
@r_position
@r_auswertung
ENDIF
IF bremse!
bremse!=MOUSEK
ENDIF
'
UNTIL ende!=TRUE
ERASE form$(),b&(),wÄhlbar!(),gewÄhlt!(),revers!()
' Datazeilen
'
RETURN
PROCEDURE r_position
bremse!=TRUE
gefunden!=FALSE
i|=1
REPEAT
j|=1
REPEAT
IF MOUSEX>b&(i|,j|,1) AND MOUSEY>b&(i|,j|,2) AND MOUSEX<b&(i|,j|,3) AND MOUSEY<b&(i|,j|,4)
j1|=j|
gefunden!=TRUE
ENDIF
INC j|
UNTIL form$(i|,j|)="-------------"
INC i|
UNTIL i|>n_gruppen% OR gefunden!=TRUE
IF gefunden!
gruppe|=PRED(i|)
eintrag|=j1|
IF gruppe|=n_gruppen%
ende!=TRUE
ENDIF
ELSE
gruppe|=0
ENDIF
RETURN
PROCEDURE r_auswertung
IF wÄhlbar!(gruppe|,eintrag|)
IF gewÄhlt!(gruppe|,eintrag|)
gewÄhlt!(gruppe|,eintrag|)=FALSE
revers!(gruppe|)=FALSE
GET b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),b&(gruppe|,eintrag|,3),b&(gruppe|,eintrag|,4),revers$
PUT b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),revers$,30
ELSE IF NOT gewÄhlt!(gruppe|,eintrag|)
IF revers!(gruppe|)
j|=1
REPEAT
IF gewÄhlt!(gruppe|,j|)
GET b&(gruppe|,j|,1),b&(gruppe|,j|,2),b&(gruppe|,j|,3),b&(gruppe|,j|,4),revers$
PUT b&(gruppe|,j|,1),b&(gruppe|,j|,2),revers$,30
gewÄhlt!(gruppe|,j|)=FALSE
ENDIF
INC j|
UNTIL form$(gruppe|,j|)="-------------"
ELSE
revers!(gruppe|)=TRUE
ENDIF
gewÄhlt!(gruppe|,eintrag|)=TRUE
GET b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),b&(gruppe|,eintrag|,3),b&(gruppe|,eintrag|,4),revers$
PUT b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),revers$,30
'
' evtl. revers aus
'
ENDIF
ENDIF
RETURN
PROCEDURE r_setzen
GRAPHMODE 1
IF INSTR(form$(i|,j|),"|")
z|=0
t|=1
WHILE INSTR(form$(i|,j|),"|",t|)
INC z|
x$=MID$(form$(i|,j|),t|,INSTR(form$(i|,j|),"|",t|)-t|)
t|=SUCC(INSTR(form$(i|,j|),"|",t|))
tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(x$)*4)
ty&=b&(i|,j|,2)-2+z|*10
TEXT tx&,ty&,x$
WEND
x$=MID$(form$(i|,j|),t|,LEN(form$(i|,j|))-PRED(t|))
tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(x$)*4)
ty&=b&(i|,j|,2)-2+SUCC(z|)*10
TEXT tx&,ty&,x$
BOX b&(i|,j|,1),b&(i|,j|,2),b&(i|,j|,3),b&(i|,j|,4)
ELSE
tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(form$(i|,j|))*4)
ty&=(b&(i|,j|,2)+(b&(i|,j|,4)-b&(i|,j|,2))/2)+3
TEXT tx&,ty&,form$(i|,j|)
BOX b&(i|,j|,1),b&(i|,j|,2),b&(i|,j|,3),b&(i|,j|,4)
ENDIF
RETURN